package com.atbeijing.bigdata.spark.sql

import org.apache.spark.SparkConf
import org.apache.spark.sql.{DataFrame, SparkSession}

object SparkSQL03_DSL {

    def main(args: Array[String]): Unit = {

        // TODO 创建环境对象
        val sparkConf = new SparkConf().setMaster("local[*]").setAppName("SparkSQL")
        val spark: SparkSession = SparkSession.builder().config(sparkConf).getOrCreate()

        val df: DataFrame = spark.read.json("data/user.json")

        //df.select("id", "username", "age").show

        // 在使用特殊操作时，需要隐式转换操作的，这个隐式转换在shell窗口自动导入，所以可以直接使用
        // 在当前的环境中，没有自动引入，所以就会报错

        // import 关键字可以导入对象的方法，这个对象的声明必须是val
        // 这里的spark不是包名，是对象名
        import spark.implicits._
        df.select($"age"+10).show
        // df.select('age+10).show



        spark.stop()
    }
}
